package cn.edu.wynu;

public class Test07_2 {
    public static void main(String[] args) {
        // 案例七：找素数，方法二，主要运用  OUT: // 为外部循环指定标签
        // 要求：判断 101~200之间有多少个素数，并输出所有素数。
        // 说明：除了1和它本身以外，不能被其他正整数整除，就叫素数。
        // 比如：3、7就是素数，而9、21等等不是素数。

        System.out.println("当前素数的个数是：" + search(101, 200));

    }

    // 方法内部的实现逻辑：使用for循环来产生如101到200之间的每个数;每拿到一个数，判断该数是否是素数；
    // 判断规则是：从2开始遍历到该数的一半的数据，看是否有数据可以整除它，有则不是素数，没有则是素数；
    // 根据判定的结果来决定是否输出这个数据(是素数则输出)；最后还需要统计素数的个数并返回。
    public static int search(int start, int end) {
        int count = 0;
        OUT: // 为外部循环指定标签

        // start = 101  end = 200
        // 1.定义一个for循环找到101到200之间的每个数
        for (int i = start; i <= end; i++) {
            // i = 101,102,103,104,105...200

            // 2.；拦截判断该数是否为素数
            for (int j = 2; j <= i / 2; j++) {
                if(i % j == 0){
                    // 该数不是素数，不能打印
                    continue OUT; // 跳出本次循环，继续下一次循环
                }
            }
            count++;
            System.out.println(i);
        }
        return count;
    }
}
